package bosc.cn.dto.loan;

import bosc.cn.dto.common.CommonRequest;
import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.List;

@Data
@ToString
public class LoanApprovalReqDTO extends CommonRequest {
    // 贷款转入钱包ID
    @NotBlank(message = "转入钱包ID不能为空")
    @Size(max = 16, message = "转入钱包ID长度不能超过16")
    private String tfrInWltId;

    // 贷款转入钱包名称
    @Size(max = 256, message = "转入钱包名称长度不能超过256")
    private String tfrInWltNm;

    // 经办人证件类型
    @Size(max = 4, message = "经办人证件类型长度不能超过4")
    private String oprIdentTp;

    // 经办人证件号码
    @Size(max = 18, message = "经办人证件号码长度不能超过18")
    private String oprIdentNo;

    // 经办人姓名
    @Size(max = 256, message = "经办人姓名长度不能超过256")
    private String oprNm;

    // 经办人手机号码
    @Size(max = 11, message = "经办人手机号长度不能超过11")
    private String oprTelNo;

    // 贷款摘要
    @Size(max = 256, message = "交易摘要长度不能超过256")
    private String txnSmy;

    // 贷款金额
    @NotNull(message = "交易金额不能为空")
    private BigDecimal txnAmt;

    @Size(max = 10, message = "申请人工号长度不能超过10个字符")
    private String applyUserId;

    @NotBlank(message = "申请单号不能为空")
    @Size(max = 28, message = "钱包ID长度不能超过16个字符")
    private String applyNo;

    // 审批人列表
    private List<String> authList;

    @Data
    public static class BusinessInfoDTO {

        // 审批人ID
        @Size(max = 10, message = "审批人ID长度不能超过10")
        private String userId;

        public String getUserId() {
            return userId;
        }

        public void setUserId(String userId) {
            this.userId = userId;
        }
    }

    // 共同授权信息
    @NotBlank(message = "共同授权信息不能为空")
    @Size(max = 64, message = "共同授权信息长度不能超过64")
    private String authInfo;

    // 共同授权信息密文
    @NotBlank(message = "共同授权信息密文不能为空")
    @Size(max = 256, message = "共同授权信息密文长度不能超过256")
    private String authMsg;


}